#include"Heap.hpp"
using namespace std;
//int main()
//{
//	Heap hp;
//	HPDataType a[5] = { -5,100,35,24,9 };
//	int size = sizeof(a) / sizeof(a[0]);
//	HeapCreate(&hp, a, size);
//	printf("%d\n", HeapSize(&hp));
//	HeapPush(&hp, 54);
//	HeapPush(&hp, 10);
//	HeapPush(&hp, 65);
//	HeapPush(&hp, 1);
//	while (!HeapEmpty(&hp))
//	{
//		int top = HeapTop(&hp);
//		printf("%d ", top);
//		HeapPop(&hp);
//	}
//	printf("\n");
//	return 0;
//}

void HeapSort(HPDataType* a, int n)
{
	for (int i = (n - 2); i >= 0; --i)
	{
		adjustdown(a, i, n);
	}

	int size = n;
	while (size)
	{
		std::swap(a[0], a[size - 1]);
		--size;
		adjustdown(a, 0, size );
	}
}

int main()
{
	int a[] = { 9,8,7,6,5,4,3,2,1 };
	int size = sizeof(a) / sizeof(a[0]);
	HeapSort(a, size);
	for (auto e : a)
	{
		cout << e << " ";
	}
	cout << endl;

	return 0;
}